This invention relates to a method of creating an internally consistent copy of an actively updated data set using processor memory. The invention advantageously permits a user to utilize both a computer program that requires access to the data set (e.g., a database report generator, a copy utility, or other such program) and a different computer program that might update the data set (e.g., a database management system program) while maintaining internal consistency in the data set, without the need for specialized caching hardware.
The general context of the operations associated with the invention is illustrated in FIG. 1. Quite commonly, a computer system administrator or other user will wish to create an image copy of a data set, e.g., a data set 102 comprising one or more data pages labeled as 1, 2, and 3, that are stored in a storage device 100 such as a direct access storage device (DASD). Typical copy programs accomplish this by creating an image copy of the data pages 1, 2, 3 in one or more buffers 105 and eventually writing out the image copy to another storage device 110 such as a magnetic tape, another DASD, and so forth.
During the copying sequence, the data set 102 represented by data pages 1, 2, 3 may be accessible to WRITE-type operations from another computer program such as the well-known IBM database program DB2 (not shown). The DB2 program may attempt, for example, to overwrite a data page 2 with data from a DB2 buffer pool 115 in parallel with the copying process. Under this sequence of events, if the updating takes place before the data page 2 is copied to the buffer 105, the version of the data page 2 that is actually copied is not the same as the version that existed when the copy process was initiated. As a result, the data page 2 as copied to the buffer 105 may be internally inconsistent with associated data page 1 and/or data page 3, possibly violating logical data consistency constraints (e.g., referential integrity constraints) within the data set.